package com.ybkj.daijia.server.zhuan;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;

// 专车车辆
public class Car implements Serializable {

    public static final int FREE = 0;
    public static final int BUSY = 1;
    public static final int OUTLINE = 2;
    private static final long serialVersionUID = 1L;
    private Long id;
    private Date created;
    private Date updated;
    private Long companyId;
    private String companyName;
    private String carName;
    private String carNumber;
    private Integer status;// 0 空闲 ,1 忙碌 , 2 离线
    private Long carTypeId;
    private String carTypeName;
    private Double drivingDistance;
    private Date buyTime;
    private Long employId;
    private String employName;
    private Integer limitLine;
    private Date insuranceTime;// 保险时间
    private Date overhaulTime;// 年检时间
    private String picture;// 图片
    private String platePictureAddress;//车牌图片
    private String provincial;
    private String city;
    private String county;
    private String address;
    private Long version;
    private String appKey;
    private String flights;// 童俊超添加倒班班次
    // 为符合政府监管要求添加的字段
    private String plateColor; // 车牌颜色
    private String brand; // 车辆厂牌
    private String vehicleType; // 车辆类型
    private String vehicleModel; // 车辆型号
    private String owner; // 所属车主
    private String bodyColor; // 车身颜色
    private String engineNo; // 车辆发动机号
    private String vin; // 车辆识别VIN码
    private String fuel; // 车辆燃料类型
    private String permitted; // 核定载客位
    private Date registrationTime; // 注册日期
    private Integer inspectioStatus; // 年验状态 0:未年检,1:已年检 2不合格
    private Integer rateType; // 运价类型 0:未知
    private String displacement; // 车辆发动机排量
    private Double totalMileage; // 车辆行驶总里程
    private Integer maintenanceStatus; // 车辆检修状态 0:已年检,1:已到期
    private Date nextOverhaulTime; // 下次年检时间(下次年检)
    private String taxiNo; // 网络预约出租汽车运输证号
    private String taxiAgency; // 网络预约出租汽车运输证发证机构
    private String taxiRegion; // 经营区域
    private Date validTime; // 网络预约出租汽车运输证有效期起
    private Date invalidTime; // 网络预约出租汽车运输证有效期止
    private Date taxiRegisterTime; // 网约车初次登记日期
    private String deviceSerial; // 网约车发票打印设备序列号
    private String deviceBrand; // 卫星定位装置品牌
    private String deviceModel; // 卫星定位装置型号
    private Date deviceInstallTime; // 卫星定位装置安装日期
    private String insurer; // 保险公司
    private String insuranceNo; // 保险号
    private String insType; // 保险类型
    private Double insMoney; // 保险金额
    private Date insValidTime; // 保险生效时间
    private String gpsIMEI;// 卫星定位装置IMEI号
    /**
     * 新添加
     */
    private Date registerDate;// 报备日期 YYYYMMDD
    private Integer commercialType;// 服务类型
    private String driverProType;// 车辆归属,定长 2,GR个人私家车ZY平台自有车CZ出租企业
    private String vehicleBrand;// 车型,以机动车行驶证为准
    private String vehicleLicense;// 车牌号码,6位车牌号，去除“京”，字母大写
    private String vehicleStatus;// 状态,YY运营,TC退出
    private String addressed;// 车辆所在城市
    private boolean isUpPlatformInfo;// 是否开启监管平台开关
    private Integer flag;// 操作表示1：新增2：更新3：删除
    private Integer upStatus;// 监管平台上传标识

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public Integer getFlag() {
        return flag;
    }

    public void setFlag(Integer flag) {
        this.flag = flag;
    }

    public String getPlatePictureAddress() {
        return platePictureAddress;
    }

    public void setPlatePictureAddress(String platePictureAddress) {
        this.platePictureAddress = platePictureAddress;
    }

    public String getFlights() {
        return flights;
    }

    public void setFlights(String flights) {
        this.flights = flights;
    }

    public Integer getUpStatus() {
        return upStatus;
    }

    public void setUpStatus(Integer upStatus) {
        this.upStatus = upStatus;
    }

    public boolean isUpPlatformInfo() {
        return isUpPlatformInfo;
    }

    public void setUpPlatformInfo(boolean isUpPlatformInfo) {
        this.isUpPlatformInfo = isUpPlatformInfo;
    }

    public String getAddressed() {
        return addressed;
    }

    public void setAddressed(String addressed) {
        this.addressed = addressed;
    }

    public Date getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(Date registerDate) {
        this.registerDate = registerDate;
    }

    public Integer getCommercialType() {
        return commercialType;
    }

    public void setCommercialType(Integer commercialType) {
        this.commercialType = commercialType;
    }

    public String getDriverProType() {
        return driverProType;
    }

    public void setDriverProType(String driverProType) {
        this.driverProType = driverProType;
    }

    public String getVehicleBrand() {
        return vehicleBrand;
    }

    public void setVehicleBrand(String vehicleBrand) {
        this.vehicleBrand = vehicleBrand;
    }

    public String getVehicleLicense() {
        return vehicleLicense;
    }

    public void setVehicleLicense(String vehicleLicense) {
        this.vehicleLicense = vehicleLicense;
    }

    public String getVehicleStatus() {
        return vehicleStatus;
    }

    public void setVehicleStatus(String vehicleStatus) {
        this.vehicleStatus = vehicleStatus;
    }

    @JsonIgnore
    public String getinspectioStatusStr() {
        if (inspectioStatus == null) {
            return "未年审";
        }
        switch (inspectioStatus) {
            case 0:
                return "未年审";
            case 1:
                return "年审合格";
            case 2:
                return "年审不合格";
            default:
                return "未年审";
        }
    }

    public String getGpsIMEI() {
        return gpsIMEI;
    }

    public void setGpsIMEI(String gpsIMEI) {
        this.gpsIMEI = gpsIMEI;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName == null ? null : companyName.trim();
    }

    public String getCarName() {
        return carName;
    }

    public void setCarName(String carName) {
        this.carName = carName == null ? null : carName.trim();
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber == null ? null : carNumber.trim();
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getCarTypeId() {
        return carTypeId;
    }

    public void setCarTypeId(Long carTypeId) {
        this.carTypeId = carTypeId;
    }

    public String getCarTypeName() {
        return carTypeName;
    }

    public void setCarTypeName(String carTypeName) {
        this.carTypeName = carTypeName;
    }

    public Double getDrivingDistance() {
        return drivingDistance;
    }

    public void setDrivingDistance(Double drivingDistance) {
        this.drivingDistance = drivingDistance;
    }

    public Date getBuyTime() {
        return buyTime;
    }

    public void setBuyTime(Date buyTime) {
        this.buyTime = buyTime;
    }

    public Long getEmployId() {
        return employId;
    }

    public void setEmployId(Long employId) {
        this.employId = employId;
    }

    public String getEmployName() {
        return employName;
    }

    public void setEmployName(String employName) {
        this.employName = employName == null ? null : employName.trim();
    }

    public Integer getLimitLine() {
        return limitLine;
    }

    public void setLimitLine(Integer limitLine) {
        this.limitLine = limitLine;
    }

    public Date getInsuranceTime() {
        return insuranceTime;
    }

    public void setInsuranceTime(Date insuranceTime) {
        this.insuranceTime = insuranceTime;
    }

    public Date getOverhaulTime() {
        return overhaulTime;
    }

    public void setOverhaulTime(Date overhaulTime) {
        this.overhaulTime = overhaulTime;
    }

    public String getPicture() {
        return picture;
    }

    public void setPicture(String picture) {
        this.picture = picture == null ? null : picture.trim();
    }

    public String getProvincial() {
        if (StringUtils.isNotBlank(provincial)) {
            return provincial;
        } else {
            return "";
        }
    }

    public void setProvincial(String provincial) {
        this.provincial = provincial == null ? "" : provincial.trim();
    }

    public String getCity() {
        if (StringUtils.isNotBlank(city)) {
            return city;
        } else {
            return "";
        }
    }

    public void setCity(String city) {
        this.city = city == null ? "" : city.trim();
    }

    public String getCounty() {
        if (StringUtils.isNotBlank(county)) {
            return county;
        } else {
            return "";
        }
    }

    public void setCounty(String county) {
        this.county = county == null ? "" : county.trim();
    }

    public String getAddress() {
        if (StringUtils.isNotBlank(address)) {
            return address;
        } else {
            return "";
        }
    }

    public void setAddress(String address) {
        this.address = address == null ? "" : address.trim();
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public String getAppKey() {
        return appKey;
    }

    public void setAppKey(String appKey) {
        this.appKey = appKey == null ? null : appKey.trim();
    }

    public String getPlateColor() {
        return plateColor;
    }

    public void setPlateColor(String plateColor) {
        this.plateColor = plateColor;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(String vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getVehicleModel() {
        return vehicleModel;
    }

    public void setVehicleModel(String vehicleModel) {
        this.vehicleModel = vehicleModel;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public String getBodyColor() {
        return bodyColor;
    }

    public void setBodyColor(String bodyColor) {
        this.bodyColor = bodyColor;
    }

    public String getEngineNo() {
        return engineNo;
    }

    public void setEngineNo(String engineNo) {
        this.engineNo = engineNo;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    public String getFuel() {
        return fuel;
    }

    public void setFuel(String fuel) {
        this.fuel = fuel;
    }

    public String getPermitted() {
        return permitted;
    }

    public void setPermitted(String permitted) {
        this.permitted = permitted;
    }

    public Date getRegistrationTime() {
        return registrationTime;
    }

    public void setRegistrationTime(Date registrationTime) {
        this.registrationTime = registrationTime;
    }

    public Integer getInspectioStatus() {
        return inspectioStatus;
    }

    public void setInspectioStatus(Integer inspectioStatus) {
        this.inspectioStatus = inspectioStatus;
    }

    public Integer getRateType() {
        return rateType;
    }

    public void setRateType(Integer rateType) {
        this.rateType = rateType;
    }

    public String getDisplacement() {
        return displacement;
    }

    public void setDisplacement(String displacement) {
        this.displacement = displacement;
    }

    public Double getTotalMileage() {
        return totalMileage;
    }

    public void setTotalMileage(Double totalMileage) {
        this.totalMileage = totalMileage;
    }

    public Integer getMaintenanceStatus() {
        return maintenanceStatus;
    }

    public void setMaintenanceStatus(Integer maintenanceStatus) {
        this.maintenanceStatus = maintenanceStatus;
    }

    public Date getNextOverhaulTime() {
        return nextOverhaulTime;
    }

    public void setNextOverhaulTime(Date nextOverhaulTime) {
        this.nextOverhaulTime = nextOverhaulTime;
    }

    public String getTaxiNo() {
        return taxiNo;
    }

    public void setTaxiNo(String taxiNo) {
        this.taxiNo = taxiNo;
    }

    public String getTaxiAgency() {
        return taxiAgency;
    }

    public void setTaxiAgency(String taxiAgency) {
        this.taxiAgency = taxiAgency;
    }

    public String getTaxiRegion() {
        return taxiRegion;
    }

    public void setTaxiRegion(String taxiRegion) {
        this.taxiRegion = taxiRegion;
    }

    public Date getValidTime() {
        return validTime;
    }

    public void setValidTime(Date validTime) {
        this.validTime = validTime;
    }

    public Date getInvalidTime() {
        return invalidTime;
    }

    public void setInvalidTime(Date invalidTime) {
        this.invalidTime = invalidTime;
    }

    public Date getTaxiRegisterTime() {
        return taxiRegisterTime;
    }

    public void setTaxiRegisterTime(Date taxiRegisterTime) {
        this.taxiRegisterTime = taxiRegisterTime;
    }

    public String getDeviceSerial() {
        return deviceSerial;
    }

    public void setDeviceSerial(String deviceSerial) {
        this.deviceSerial = deviceSerial;
    }

    public String getDeviceBrand() {
        return deviceBrand;
    }

    public void setDeviceBrand(String deviceBrand) {
        this.deviceBrand = deviceBrand;
    }

    public String getDeviceModel() {
        return deviceModel;
    }

    public void setDeviceModel(String deviceModel) {
        this.deviceModel = deviceModel;
    }

    public Date getDeviceInstallTime() {
        return deviceInstallTime;
    }

    public void setDeviceInstallTime(Date deviceInstallTime) {
        this.deviceInstallTime = deviceInstallTime;
    }

    public String getInsurer() {
        return insurer;
    }

    public void setInsurer(String insurer) {
        this.insurer = insurer;
    }

    public String getInsuranceNo() {
        return insuranceNo;
    }

    public void setInsuranceNo(String insuranceNo) {
        this.insuranceNo = insuranceNo;
    }

    public String getInsType() {
        return insType;
    }

    public void setInsType(String insType) {
        this.insType = insType;
    }

    public Double getInsMoney() {
        return insMoney;
    }

    public void setInsMoney(Double insMoney) {
        this.insMoney = insMoney;
    }

    public Date getInsValidTime() {
        return insValidTime;
    }

    public void setInsValidTime(Date insValidTime) {
        this.insValidTime = insValidTime;
    }

    @Override
    public String toString() {
        return "Car [id=" + id + ", created=" + created + ", updated="
            + updated + ", companyId=" + companyId + ", companyName="
            + companyName + ", carName=" + carName + ", carNumber="
            + carNumber + ", status=" + status + ", carTypeId=" + carTypeId
            + ", carTypeName=" + carTypeName + ", drivingDistance="
            + drivingDistance + ", buyTime=" + buyTime + ", employId="
            + employId + ", employName=" + employName + ", limitLine="
            + limitLine + ", insuranceTime=" + insuranceTime
            + ", overhaulTime=" + overhaulTime + ", picture=" + picture
            + ", provincial=" + provincial + ", city=" + city + ", county="
            + county + ", address=" + address + ", version=" + version
            + ", appKey=" + appKey + ", plateColor=" + plateColor
            + ", brand=" + brand + ", vehicleType=" + vehicleType
            + ", vehicleModel=" + vehicleModel + ", owner=" + owner
            + ", bodyColor=" + bodyColor + ", engineNo=" + engineNo
            + ", vin=" + vin + ", fuel=" + fuel + ", permitted="
            + permitted + ", registrationTime=" + registrationTime
            + ", inspectioStatus=" + inspectioStatus + ", rateType="
            + rateType + ", displacement=" + displacement
            + ", totalMileage=" + totalMileage + ", maintenanceStatus="
            + maintenanceStatus + ", nextOverhaulTime=" + nextOverhaulTime
            + ", taxiNo=" + taxiNo + ", taxiAgency=" + taxiAgency
            + ", taxiRegion=" + taxiRegion + ", validTime=" + validTime
            + ", invalidTime=" + invalidTime + ", taxiRegisterTime="
            + taxiRegisterTime + ", deviceSerial=" + deviceSerial
            + ", deviceBrand=" + deviceBrand + ", deviceModel="
            + deviceModel + ", deviceInstallTime=" + deviceInstallTime
            + "]";
    }

}
